class Subject { //目标对象（类似发布者）
	constructor() {
		this.subs = []; //用于记录·观察者
	}
	addSub(sub) {
		this.subs.push(sub);
	}
	notify() { //广播，通知更新
		this.subs.forEach(sub => {
			sub.update();
		});
	}
}
class Observer { //观察者（类似订阅者）
	update() {
		console.log('update');
	}
}
let subject = new Subject();
let ob = new Observer();
//目标添加观察者了
subject.addSub(ob);
//目标发布消息调用观察者的更新方法了
subject.notify(); //update

// 可用于vue的双向绑定
